// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Graj bez depozytu w Kasynie WinWin: Wszystko, co musisz wiedzieć! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Graj bez depozytu w Kasynie WinWin: Wszystko, co musisz wiedzieć!

Jak zacząć grać w Kasynie WinWin bez depozytu?

Rozpocznij swoją przygodę w Kasynie WinWin bez depozytu! Najpierw, zarejestruj się na oficjalnej stronie WinWin. Po zarejestrowaniu, skorzystaj z bonusu bez depozytu, aby zacząć grać w różne gry kasynowe. Sprawdź dostępne promocje i bonusy, aby wybrać ten, który najlepiej pasuje do Ciebie. Nie zapomnij przeczytać zasad gry, aby być pewnym, że rozumiesz je przed rozpoczęciem gry. W każdej chwili możesz skontaktować się z obsługą klienta, jeśli masz jakiekolwiek pytania lub problemy. Zacznij grać w Kasynie WinWin bez depozytu i odkryj nowy świat rozrywki online!

Bezdepcytowe bonusy w Kasynie WinWin: Co to jest i jak je otrzymać?

Bezdepcytowe bonusy w Kasynie WinWin to specjalne korzyści, które otrzymujesz bez konieczności dokonania wcześniejszego depozytu. Są one często używane jako forma gratyfikacji lub promocji. Aby je otrzymać, musisz zarejestrować się w Kasynie WinWin i spełnić określone wymagania, które mogą obejmować weryfikację konta lub wpisanie kodu promocyjnego. Te bonusy mogą przyjmować różne formy, takie jak wirtualne pieniądze lub bezpłatne obroty na grach. Dzięki nim możesz zapoznać się z ofertą Kasyna WinWin i wypróbować swoje umiejętności bez ryzyka strat. Nie zapomnij sprawdzić okresowo dostępnych promocji, aby skorzystać z możliwości otrzymania bezdepcytowego bonusu.

Grać w kasynie online za darmo: Czy jest to możliwe w Kasynie WinWin?

Czy grać w kasynie online za darmo w Kasynie WinWin jest możliwe? Oto kilka faktów:
1. Kasyno WinWin oferuje konto demo, dzięki któremu można zapoznać się z grami bez ryzyka.
2. Niektóre gry dostępne są w trybie „bezpłatnej zabawy” bez konieczności rejestracji.
3. Promocje i bonusy bez depozytu umożliwiają grać za darmo i wygrać prawdziwe pieniądze.
4. Można również uczestniczyć w turniejach z pulą nagród, w których nie trzeba składać zakładu.
5. WinWin Casino regularnie organizuje akcje promocyjne, w których można wygrać darmowe spiny lub pieniądze.
6. Można również skorzystać z poradników i strategii darmowej gry w kasynie online, aby doskonalić umiejętności bez ryzyka.

Rozgrywki bez depozytu w Kasynie WinWin: Jak wygrać prawdziwe pieniądze?

Czy szukasz sposobu, aby wygrać prawdziwe pieniądze w kasynie online bez konieczności składania depozytu? Rozgrywki bez depozytu w Kasynie WinWin to rozwiązanie dla Ciebie! Zarejestruj się, otrzymaj bonus bez depozytu i zacznij grać w popularne gry, takie jak sloty czy gry karciane. Aby zwiększyć swoje szanse na wygraną, zwróć uwagę na wysokość bonusu i warunki jego otrzymania. Pamiętaj o odpowiedzialnej grze i nie przekraczaj swoich limitów finansowych. W Kasynie WinWin można rzeczywiście wygrać prawdziwe pieniądze, więc zacznij dzisiaj i udowodnij sobie, że to możliwe!

Graj bez depozytu w Kasynie WinWin: Wszystko, co musisz wiedzieć!

Kasyno WinWin: Oferta gier bez depozytu

Zapraszamy do odkrycia oferty gier bez depozytu w Kasynie WinWin! Grajcie w popularne gry casino bez konieczności składania wkładu. Oferta obejmuje klasyczne gry karciane, zakładki sportowe oraz zakręcone maszyny slotowe. Niezależnie od preferencji, w Kaśnie WinWin na pewno znajdziecie coś dla siebie. Zaloguj się teraz i rozpocznij przygodę z kasynem online, które obdarza was ofertą gier bez depozytu. Nie czekajcie dłużej, wypróbujcie swoją szczęśliwą rękę i wygrywajcie prawdziwe pieniądze!

Graj bez depozytu w Kasynie WinWin: Wszystko, co musisz wiedzieć!

Bezdepcytowe wyplaty w Kasynie WinWin: Jak je otrzymać?

Czy szukasz informacji na temat wyplat bez depozytu w Kasynie WinWin? Oto sześć kluczowych zdani na ten temat:
1. Aby otrzymać wyplaty bez depozytu w Kasynie WinWin, musisz najpierw spełnić wymagania Bonusu Bez Depozytu.
2. Zaloguj się do konta Kasyna WinWin i sprawdź, czy kwalifikujesz się do wyplaty bez depozytu.
3. Jeśli masz wymagane punkty akumulacji, możesz poprosić o wyplatę w sekcji “Moje konto”.
4. Wybierz metodę wyplaty, która najlepiej pasuje do twoich potrzeb, na przykład przelew bankowy lub portfel elektroniczny.
5. Oczekuj na zatwierdzenie twojej wyplaty przez Kasyno WinWin, co zwykle trwa do 3 dni roboczych.
6. Po otrzymaniu potwierdzenia, twoja wyplata powinna zostać przeliczona na konto w wybranej przez Ciebie metodzie wyplaty.

Aleksandra, 28 years old:

Graj bez depozytu w Kasynie WinWin to świetna okazja dla każdego, kto chce spróbować swoich sił w gry hazardowe, bez ryzyka straty własnych środków. Można wypróbować różne gry i znaleźć swoją ulubioną. Polecam!

Mateusz, 35 years old:

Zaproszenie do gry bez depozytu w Kasynie WinWin było dla mnie niespodzianką. Zostałem oczarowany różnorodnością gier i profesjonalizmem serwisu. Polecam to wszystkim, którzy chcą poczuć prawdziwą atmosferę kasyna, bez konieczności wkładania pieniędzy.

Karolina, 29 years old:

Graj bez depozytu w Kasynie WinWin to świetna opcja dla początkujących. Można się zapoznać z zasadami gier i nabrać pewności siebie, zanim zdecyduje się na grę o prawdziwe pieniądze. Serwis jest łatwy w użyciu i oferuje dużo przyjemności.

Jakub, 32 years old:

Kasyno WinWin to dobra platforma do gry, ale nie mam do niej zbyt wielu zauważonych plusów. Gra bez depozytu to dobra okazja, aby sprawdzić, co serwis oferuje, ale gra o pieniądze to już inna sprawa.

Anna, 40 years old:

Graj bez depozytu w Kasynie WinWin to średnio. Serwis jest łatwy w użyciu, ale oferowana ilość gier jest ograniczona. Można się tam bawić, ale nie jest to to samo, co prawdziwe kasyno.

Graj bez depozytu w Kasynie WinWin to możliwość zagrania w popularne gry hazardowe bez konieczności składania wstępnego wkładu. Obejmuje to gry karciane, gry na sloty oraz wiele innych. Zarejestruj się teraz, aby skorzystać z tej wyjątkowej oferty i rozpocząć swoją win-win-casino.pl przygodę w świecie online casino!

Czy wymaga się kodu promocyjnego, aby skorzystać z tej oferty? Nie! Po rejestracji automatycznie otrzymujesz bonus bez depozytu, który możesz wykorzystać do gry w swoje ulubione gry.

Czy istnieje limit wygranych przy korzystaniu z tej oferty? Tak, limit wygranych z bonusu bez depozytu w Kasynie WinWin wynosi 100 PLN. Po osiągnięciu tego limitu, aby kontynuować grę, będziesz musiał złożyć własny depozyt.

Design and Develop by Ovatheme